//////////////////////////////////////////////////////////////////////////

#ifndef _CONNECTIONPACKET_H_
#include "connectionpacket.h"
#endif

//////////////////////////////////////////////////////////////////////////


ConnectionPacket::ConnectionPacket( const Packet& _packet,
                                    PacketCode _packetCode /* = REGULAR */ )
: Packet(_packet), m_PacketCode(_packetCode)
{
}


//////////////////////////////////////////////////////////////////////////


ConnectionPacket::ConnectionPacket( const char* _data, size_t _length )
: m_Data(_data, _data + _length)
{
}


//////////////////////////////////////////////////////////////////////////


ConnectionPacket::PacketCode ConnectionPacket::GetPacketCode() const
{
    return m_PacketCode;
}


//////////////////////////////////////////////////////////////////////////


void ConnectionPacket::SetPacketCode( PacketCode _code )
{
    m_PacketCode = _code;
}


//////////////////////////////////////////////////////////////////////////


void ConnectionPacket::PackCode()
{
    char code = static_cast<char>(m_PacketCode);
    m_Data.push_back(code);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionPacket::UnPackCode()
{
    m_PacketCode = static_cast<PacketCode>( m_Data.back() );
    m_Data.pop_back();
}


//////////////////////////////////////////////////////////////////////////
